﻿namespace Bean.Entity.Param;

/// <summary>
///     数据查询分页器
/// </summary>
public class BasePageParam
{
    private int _rows;

    /// <summary>
    ///     页码
    /// </summary>
    public int page { get; set; }

    /// <summary>
    ///     页面大小
    ///     不传默认10
    ///     最大值200
    /// </summary>
    public int rows
    {
        get
        {
            if (_rows <= 0) _rows = 10;

            if (_rows > 200) _rows = 200;

            return _rows;
        }
        set => _rows = value;
    }


    //[JsonIgnore]
    /// <summary>
    ///     排序字段
    /// </summary>
    public string sort { get; set; }


    //[JsonIgnore]
    /// <summary>
    ///     排序方式
    /// </summary>
    public string order { get; set; }


    //[JsonIgnore]
    /// <summary>
    ///     开始索引
    /// </summary>
    public int StartIndex => ((page <= 0 ? 1 : page) - 1) * rows;

    //
    // 摘要:
    //     结束索引
    //[JsonIgnore]
    public int EndIndex => StartIndex + rows - 1;

    //
    // 摘要:
    //     是否分页
    //
    //     0 不分页
    //
    //     1 分页
    //
    //     默认为1
    public int IsPaging { get; set; } = 1;
}